html属性顺序

class
id
data-*,name
src, for, type, href
title, alt
aria-*, role

/*a标签*/
<a class="..." id="..." data-modal="toggle" href="#" title='...' style="...">
  Example link
</a>

/*input标签*/
<input class="..." id="..." data-modal="toggle" type="text" name="..." value="..." />

/*img标签 img必须加上alt*/
<img class="..." id="..." src="..." title="..." alt="...' />

html

css命名

class命名规范:

  • class 名称中只能出现小写字符和破折号"-";

  • class 使用有意义的名称,使用有组织的或目的明确的名称;

  • class 名称应当尽可能短,并且意义明确,避免过度任意的简写。.btn 代表 button,但是 .s 不能表达任何意思;

BEM命名方法:

/* 块--代表更高级别的抽象或组件 */
.block

/* 元素--代表.block的后代 */
.block_element

/* 修饰符--代表.block的不同状态或不同版本 */
.block--modifier

/* 例如 */
.media{}
.media_img{}
.media_img--rev{}
.media_body{}

<div class="media">
  <img src="logo.png" alt="Foo Corp logo" class="media_img--rev">
  <div class="media_body">
    <h3 class="alpha">Welcome to Foo Corp</h3>
    <p class="lede">Foo Corp is the best, seriously!</p>
  </div>
</div>
/*.media是一个块,.media_img--rev是一个加了修饰符的.media_img的变体,它是属于.media的元素。而.media_body是一个尚未被改变过的也是属于.media的元素。*/

html

常用命名:

/* --base 基本-- */
.header                 /* --头部-- */
.logo                   /* --logo-- */
.footer                 /* --底部-- */
.nav                    /* --导航-- */
.top-nav                /* --顶部导航链接-- */
.main                   /* --主体内容-- */
.container              /* --内容居中-- */

--current               /* --默认状态-- */
-title                  /* --标题-- */
-item                   /* --列表-- */
-con                    /* --内容-- */
icon-                   /* --图标- */

/* --侧边栏-- */
.aside
.aside-nav              /* --侧边栏导航-- */
.aside-nav_item         /* --侧边栏分类-- */
.aside-nav--current     /* --侧边栏当前状态-- */

/* --盒子-- */
.box
.box-title              /* --盒子标题-- */
.box-title_txt          /* --盒子标题文字-- */
.box-con                /* --盒子内容-- */

css编码规范


.selector{
  /*显示相关*/
  display
  float
  clear
  cursor
  content

  /*定位等*/
  position
  top
  left
  z-index

  /*盒模型*/
  margin
  padding
  width
  height
  border
  border-radius

  /*排版文字等*/
  color
  font
  vertical-align
  line-height
  white-space
  text-decoration
  text-align

  /*背景*/
  background
  opacity
}

如:
.selector {
  display: block;
  float: right;

  position: absolute;
  top: 0;
  right: 0;
  z-index: 100;

  width: 100px;
  height: 100px;
  border: 1px solid #e5e5e5;
  border-radius: 3px;

  font: normal 13px "Helvetica Neue", sans-serif;
  line-height: 1.5;
  color: #333;
  text-align: center;

  background-color: #f5f5f5;
}

css

less规范


/* less嵌套不超过三层 */
.aside-nav{
  margin-bottom: 10px;
  margin-top: 0;

  dt {
    cursor: pointer;
    background: #fff;

    a {
      text-decoration: none;
      color: @cDark;
    }
  }

  dd {
    display: none;
    height: 30px;
    padding-left: 20px;
    line-height: 30px;
  }
}

less

less文件命规范

index.less                  /* --首页样式-- */
header.less                 /* --头部样式-- */
footer.less                 /* --底部样式-- */
bass.less                   /* --基本样式-- */
box.less                    /* --盒子样式-- */
table.less                  /* --表格样式-- */
buttom.less                 /* --按钮样式-- */
icon.less                   /* --图标样式-- */
iconfont.less               /* --图标字体样式-- */
variable.less               /* --less变量样式-- */
forms.less                  /* --表单样式-- */
aside.less                  /* --侧边样式-- */
normalize.less              /* --重置样式-- */
paginator.less              /* --分页样式-- */
login.less                  /* --登录样式-- */
reg.less                    /* --注册样式-- */

ul***.less                  /* --以ui开头是插件样式-- */

特别注意

  • html和css/less都用两个空格代替制表符(tab)进行缩进

  • 以组件为单位组织代码段

  • 制定一致的注释规范

  • 使用一致的空白符将代码分隔成块

  • 为选择器分组时,将单独的选择器单独放在一行

  • 声明块的右花括号应当单独成行

  • 每条声明都应该独占一行,所有声明语句都应当以分号结尾

  • 尽量使用简写形式的十六进制,十六进制值应该全部小写,例如,#fff

  • 避免为 0 值指定单位,例如,用 margin: 0; 代替 margin: 0px;


/* selector */
.selector,
.selector-secondary,
.selector[type="text"] {
  padding: 15px;
  margin-bottom: 15px;
  box-shadow: 0px 1px 2px #ccc;
  background-color: rgba(0,0,0,.5);
}

/* Single declarations on one line */
.span1 { width: 60px; }
.span2 { width: 140px; }
.span3 { width: 220px; }

/* Multiple declarations, one per line */
.sprite {
  display: inline-block;
  width: 16px;
  height: 15px;
  background-image: url(../img/sprite.png);
}

css

moxianw
63 声望4 粉丝

专注于前端技术